#ifndef __LINKLIST_H_
#define __LINKLIST_H_
#define Node_ElementType int
typedef struct Node
{
    Node_ElementType data;
    struct Node *next;
}Node;
typedef struct LinkList
{
    Node *head;
    int len;
}LinkList;
void InitLinkList(LinkList *list);
int InsertTail(LinkList *list,Node_ElementType element);
int InsertHead(LinkList *list,Node_ElementType element);
int InsertIndex(LinkList *list,Node_ElementType element,int index);
void RemoveByindex(LinkList *list,int index);
void RemoveIByElement(LinkList *list,Node_ElementType element);
Node_ElementType *FindByIndex(LinkList *list,int index);
int *FindByElement(LinkList *list,Node_ElementType element);
void SetValueByIndex(LinkList *list,int index,Node_ElementType element);
void SetValueByElement(LinkList *list,Node_ElementType oldvalue,Node_ElementType newvalue);
void BubbleSort(LinkList *list);
void Reserve(LinkList  *list);
Node *Reserve2(Node *node);
void FreeLinkList(LinkList *list);
void Travel(LinkList *list);






#endif